{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 264,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pregnants</th>\n",
       "      <th>Plasma_glucose_concentration</th>\n",
       "      <th>blood_pressure</th>\n",
       "      <th>Triceps_skin_fold_thickness</th>\n",
       "      <th>serum_insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>Diabetes_pedigree_function</th>\n",
       "      <th>Age</th>\n",
       "      <th>Target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   pregnants  Plasma_glucose_concentration  blood_pressure  \\\n",
       "0          6                           148              72   \n",
       "1          1                            85              66   \n",
       "2          8                           183              64   \n",
       "3          1                            89              66   \n",
       "4          0                           137              40   \n",
       "\n",
       "   Triceps_skin_fold_thickness  serum_insulin   BMI  \\\n",
       "0                           35              0  33.6   \n",
       "1                           29              0  26.6   \n",
       "2                            0              0  23.3   \n",
       "3                           23             94  28.1   \n",
       "4                           35            168  43.1   \n",
       "\n",
       "   Diabetes_pedigree_function  Age  Target  \n",
       "0                       0.627   50       1  \n",
       "1                       0.351   31       0  \n",
       "2                       0.672   32       1  \n",
       "3                       0.167   21       0  \n",
       "4                       2.288   33       1  "
      ]
     },
     "execution_count": 264,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train=pd.read_csv(\"D:\\python\\csdn data\\Pima Indians Diabetes Data Set\\pima-indians-diabetes.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "0列为pregnants(怀孕次数)； \n",
    "1列为Plasma_glucose_concentration(口服葡萄糖耐量试验中2小时后的血浆葡萄糖浓度)； \n",
    "2列为blood_pressure(舒张压,单位:mm Hg） \n",
    "3列为Triceps_skin_fold_thickness(三头肌皮褶厚度,单位：mm） \n",
    "4列为serum_insulin(餐后血清胰岛素,单位:mm） \n",
    "5列为BMI,体重指数（体重（公斤）/ 身高（米）^2） \n",
    "6列为Diabetes_pedigree_function(糖尿病家系作用) \n",
    "7列为Age(年龄) \n",
    "8列为Target(分类变量,0或1）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 242,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pregnants</th>\n",
       "      <th>Plasma_glucose_concentration</th>\n",
       "      <th>blood_pressure</th>\n",
       "      <th>Triceps_skin_fold_thickness</th>\n",
       "      <th>serum_insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>Diabetes_pedigree_function</th>\n",
       "      <th>Age</th>\n",
       "      <th>Target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.845052</td>\n",
       "      <td>120.894531</td>\n",
       "      <td>69.105469</td>\n",
       "      <td>20.536458</td>\n",
       "      <td>79.799479</td>\n",
       "      <td>31.992578</td>\n",
       "      <td>0.471876</td>\n",
       "      <td>33.240885</td>\n",
       "      <td>0.348958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.369578</td>\n",
       "      <td>31.972618</td>\n",
       "      <td>19.355807</td>\n",
       "      <td>15.952218</td>\n",
       "      <td>115.244002</td>\n",
       "      <td>7.884160</td>\n",
       "      <td>0.331329</td>\n",
       "      <td>11.760232</td>\n",
       "      <td>0.476951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.078000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>27.300000</td>\n",
       "      <td>0.243750</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>117.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0.372500</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>140.250000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>127.250000</td>\n",
       "      <td>36.600000</td>\n",
       "      <td>0.626250</td>\n",
       "      <td>41.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>17.000000</td>\n",
       "      <td>199.000000</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>846.000000</td>\n",
       "      <td>67.100000</td>\n",
       "      <td>2.420000</td>\n",
       "      <td>81.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pregnants  Plasma_glucose_concentration  blood_pressure  \\\n",
       "count  768.000000                    768.000000      768.000000   \n",
       "mean     3.845052                    120.894531       69.105469   \n",
       "std      3.369578                     31.972618       19.355807   \n",
       "min      0.000000                      0.000000        0.000000   \n",
       "25%      1.000000                     99.000000       62.000000   \n",
       "50%      3.000000                    117.000000       72.000000   \n",
       "75%      6.000000                    140.250000       80.000000   \n",
       "max     17.000000                    199.000000      122.000000   \n",
       "\n",
       "       Triceps_skin_fold_thickness  serum_insulin         BMI  \\\n",
       "count                   768.000000     768.000000  768.000000   \n",
       "mean                     20.536458      79.799479   31.992578   \n",
       "std                      15.952218     115.244002    7.884160   \n",
       "min                       0.000000       0.000000    0.000000   \n",
       "25%                       0.000000       0.000000   27.300000   \n",
       "50%                      23.000000      30.500000   32.000000   \n",
       "75%                      32.000000     127.250000   36.600000   \n",
       "max                      99.000000     846.000000   67.100000   \n",
       "\n",
       "       Diabetes_pedigree_function         Age      Target  \n",
       "count                  768.000000  768.000000  768.000000  \n",
       "mean                     0.471876   33.240885    0.348958  \n",
       "std                      0.331329   11.760232    0.476951  \n",
       "min                      0.078000   21.000000    0.000000  \n",
       "25%                      0.243750   24.000000    0.000000  \n",
       "50%                      0.372500   29.000000    0.000000  \n",
       "75%                      0.626250   41.000000    1.000000  \n",
       "max                      2.420000   81.000000    1.000000  "
      ]
     },
     "execution_count": 242,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 265,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train=pd.DataFrame(data=train.drop(\"Target\",axis=1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 266,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train2=x_train.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 267,
   "metadata": {},
   "outputs": [],
   "source": [
    "y=pd.DataFrame(data=train[\"Target\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Plasma_glucose_concentration      5\n",
      "blood_pressure                   35\n",
      "Triceps_skin_fold_thickness     227\n",
      "serum_insulin                   374\n",
      "BMI                              11\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "#可知部分特征为零值与实际常识不符，将其视为缺失值 之后补齐\n",
    "NaN_col_names = ['Plasma_glucose_concentration','blood_pressure','Triceps_skin_fold_thickness','serum_insulin','BMI']\n",
    "print((x_train[NaN_col_names] == 0).sum())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 246,
   "metadata": {},
   "outputs": [],
   "source": [
    "#'Plasma_glucose_concentration'为0值较少 直接用平均值填充\n",
    "x_train[x_train['Plasma_glucose_concentration']==0]=x_train[x_train[\"Plasma_glucose_concentration\"]!=0][\"Plasma_glucose_concentration\"].mean()\n",
    "\n",
    "#其他为零值的特征利用均值和方差分布将其填充\n",
    "blood_pressure_mean=x_train[x_train[\"blood_pressure\"]!=0][\"blood_pressure\"].mean()\n",
    "Triceps_skin_fold_thickness_mean=x_train[x_train[\"Triceps_skin_fold_thickness\"]!=0][\"Triceps_skin_fold_thickness\"].mean()\n",
    "serum_insulin_mean=x_train[x_train[\"serum_insulin\"]!=0][\"serum_insulin\"].mean()\n",
    "BMI_mean=x_train[x_train[\"BMI\"]!=0][\"BMI\"].mean()\n",
    "\n",
    "blood_pressure_std=x_train[x_train[\"blood_pressure\"]!=0][\"blood_pressure\"].std()\n",
    "Triceps_skin_fold_thickness_std=x_train[x_train[\"Triceps_skin_fold_thickness\"]!=0][\"Triceps_skin_fold_thickness\"].std()\n",
    "serum_insulin_std=x_train[x_train[\"serum_insulin\"]!=0][\"serum_insulin\"].std()\n",
    "BMI_std=x_train[x_train[\"BMI\"]!=0][\"BMI\"].std()\n",
    "\n",
    "x_train.loc[x_train['blood_pressure']==0,\"blood_pressure\"]=np.random.randint(blood_pressure_mean-blood_pressure_std,blood_pressure_mean+blood_pressure_std,size=len(x_train[x_train[\"blood_pressure\"]==0][\"blood_pressure\"]))\n",
    "x_train.loc[x_train[\"Triceps_skin_fold_thickness\"]==0,\"Triceps_skin_fold_thickness\"]=np.random.randint(Triceps_skin_fold_thickness_mean-Triceps_skin_fold_thickness_std,Triceps_skin_fold_thickness_mean+Triceps_skin_fold_thickness_std,size=len(x_train[x_train[\"Triceps_skin_fold_thickness\"]==0][\"Triceps_skin_fold_thickness\"]))\n",
    "x_train.loc[x_train[\"serum_insulin\"]==0,\"serum_insulin\"]=np.random.randint(serum_insulin_mean-serum_insulin_std,serum_insulin_mean+serum_insulin_std,size=len(x_train[x_train[\"serum_insulin\"]==0][\"serum_insulin\"]))\n",
    "x_train.loc[x_train[\"BMI\"]==0,\"BMI\"]=np.random.randint(BMI_mean-BMI_std,BMI_mean+BMI_std,size=len(x_train[x_train[\"BMI\"]==0][\"BMI\"]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 247,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\scipy\\stats\\stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
      "  return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i in range(len(NaN_col_names)):\n",
    "    plt.figure(i,figsize=(6,4))\n",
    "    sns.distplot(x_train[NaN_col_names[i]],kde=False)\n",
    "    plt.xlabel(NaN_col_names[i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "corr=x_train.corr()\n",
    "plt.figure(1,figsize=(7,7))\n",
    "sns.heatmap(corr,annot=True,square=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "%s and %s: %d pregnants Triceps_skin_fold_thickness 0.5869130441886673\n",
      "%s and %s: %d pregnants BMI 0.6846510584626865\n",
      "%s and %s: %d pregnants Diabetes_pedigree_function 0.9415149632935236\n",
      "%s and %s: %d pregnants Age 0.6437746754585372\n",
      "%s and %s: %d blood_pressure Age 0.4224707318823706\n",
      "%s and %s: %d Triceps_skin_fold_thickness BMI 0.6979519953947817\n",
      "%s and %s: %d Triceps_skin_fold_thickness Diabetes_pedigree_function 0.6095309539262821\n",
      "%s and %s: %d BMI Diabetes_pedigree_function 0.7247643046146477\n",
      "%s and %s: %d Diabetes_pedigree_function Age 0.5191132521532954\n"
     ]
    }
   ],
   "source": [
    "#得到相关性大的值\n",
    "threshold=0.4\n",
    "size=x_train.shape[1]\n",
    "\n",
    "coles=x_train.columns\n",
    "res=[]\n",
    "for i in range(size):\n",
    "    for j in range(i+1,size):\n",
    "        if corr.iloc[i][j]>threshold or corr.iloc[i][j]<0-threshold:\n",
    "            res.append(corr.iloc[i][j])\n",
    "            print(\"%s and %s: %d\",coles[i],coles[j],corr.iloc[i][j])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 249,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "ms_X=StandardScaler()\n",
    "ms_y=StandardScaler()\n",
    "\n",
    "x_train=pd.DataFrame(ms_X.fit_transform(x_train), columns=x_train.columns)\n",
    "y=pd.DataFrame(data=ms_y.fit_transform(y))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入模型 做5折交叉验证并调优超参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 268,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(x_train, y, test_size=0.2, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 269,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(614, 8)"
      ]
     },
     "execution_count": 269,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 270,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(614, 1)"
      ]
     },
     "execution_count": 270,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 271,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pregnants</th>\n",
       "      <th>Plasma_glucose_concentration</th>\n",
       "      <th>blood_pressure</th>\n",
       "      <th>Triceps_skin_fold_thickness</th>\n",
       "      <th>serum_insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>Diabetes_pedigree_function</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>603</th>\n",
       "      <td>7</td>\n",
       "      <td>150</td>\n",
       "      <td>78</td>\n",
       "      <td>29</td>\n",
       "      <td>126</td>\n",
       "      <td>35.2</td>\n",
       "      <td>0.692</td>\n",
       "      <td>54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>118</th>\n",
       "      <td>4</td>\n",
       "      <td>97</td>\n",
       "      <td>60</td>\n",
       "      <td>23</td>\n",
       "      <td>0</td>\n",
       "      <td>28.2</td>\n",
       "      <td>0.443</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>247</th>\n",
       "      <td>0</td>\n",
       "      <td>165</td>\n",
       "      <td>90</td>\n",
       "      <td>33</td>\n",
       "      <td>680</td>\n",
       "      <td>52.3</td>\n",
       "      <td>0.427</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>157</th>\n",
       "      <td>1</td>\n",
       "      <td>109</td>\n",
       "      <td>56</td>\n",
       "      <td>21</td>\n",
       "      <td>135</td>\n",
       "      <td>25.2</td>\n",
       "      <td>0.833</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>468</th>\n",
       "      <td>8</td>\n",
       "      <td>120</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>0.183</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     pregnants  Plasma_glucose_concentration  blood_pressure  \\\n",
       "603          7                           150              78   \n",
       "118          4                            97              60   \n",
       "247          0                           165              90   \n",
       "157          1                           109              56   \n",
       "468          8                           120               0   \n",
       "\n",
       "     Triceps_skin_fold_thickness  serum_insulin   BMI  \\\n",
       "603                           29            126  35.2   \n",
       "118                           23              0  28.2   \n",
       "247                           33            680  52.3   \n",
       "157                           21            135  25.2   \n",
       "468                            0              0  30.0   \n",
       "\n",
       "     Diabetes_pedigree_function  Age  \n",
       "603                       0.692   54  \n",
       "118                       0.443   22  \n",
       "247                       0.427   23  \n",
       "157                       0.833   23  \n",
       "468                       0.183   38  "
      ]
     },
     "execution_count": 271,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 224,
   "metadata": {},
   "outputs": [],
   "source": [
    "#分别采用log似然损失和正确率作为模型评估指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 272,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.75       0.81300813 0.76422764 0.69672131 0.77868852]\n",
      "[0.76623377 0.75324675 0.75324675 0.80392157 0.76470588]\n",
      "[0.76623377 0.75324675 0.75324675 0.80392157 0.76470588]\n",
      "[-0.5094164  -0.47292431 -0.48549577 -0.58134904 -0.49620857]\n",
      "[-0.50621342 -0.50944007 -0.49748711 -0.45673656 -0.4923172 ]\n",
      "[-0.50621342 -0.50944007 -0.49748711 -0.45673656 -0.4923172 ]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "log=LogisticRegression()\n",
    "print(cross_val_score(log,X_train,y_train.astype(\"int\"),scoring=\"accuracy\",cv=5))\n",
    "print(cross_val_score(log,x_train,y.astype(\"int\"),scoring=\"accuracy\",cv=5))\n",
    "print(cross_val_score(log,x_train2,y.astype(\"int\"),scoring=\"accuracy\",cv=5))\n",
    "\n",
    "print(cross_val_score(log,X_train,y_train.astype(\"int\"),scoring=\"neg_log_loss\",cv=5))\n",
    "print(cross_val_score(log,x_train,y.astype(\"int\"),scoring=\"neg_log_loss\",cv=5))\n",
    "print(cross_val_score(log,x_train2,y.astype(\"int\"),scoring=\"neg_log_loss\",cv=5))\n",
    "#观察发现补充了缺失值但是效果并没有明显变好。。。。。。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 273,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'fit_time': array([0.0099988 , 0.        , 0.        , 0.01003361, 0.        ]), 'score_time': array([0., 0., 0., 0., 0.]), 'test_score': array([0.75      , 0.81300813, 0.76422764, 0.69672131, 0.77868852]), 'train_score': array([0.76530612, 0.75967413, 0.76374745, 0.78455285, 0.76219512])}\n",
      "{'fit_time': array([0.0099988 , 0.        , 0.        , 0.00996637, 0.01000166]), 'score_time': array([0., 0., 0., 0., 0.]), 'test_score': array([0.76623377, 0.75324675, 0.75324675, 0.80392157, 0.76470588]), 'train_score': array([0.78175896, 0.77361564, 0.78338762, 0.76747967, 0.7902439 ])}\n",
      "{'fit_time': array([0.005481  , 0.        , 0.01003599, 0.        , 0.01000905]), 'score_time': array([0., 0., 0., 0., 0.]), 'test_score': array([0.76623377, 0.75324675, 0.75324675, 0.80392157, 0.76470588]), 'train_score': array([0.78175896, 0.77361564, 0.78338762, 0.76747967, 0.7902439 ])}\n",
      "{'fit_time': array([0.00999045, 0.        , 0.00999928, 0.        , 0.00997519]), 'score_time': array([0., 0., 0., 0., 0.]), 'test_score': array([-0.5094164 , -0.47292431, -0.48549577, -0.58134904, -0.49620857]), 'train_score': array([-0.49460228, -0.50560645, -0.50231683, -0.47807831, -0.50301911])}\n",
      "{'fit_time': array([0.        , 0.01002741, 0.        , 0.        , 0.00999951]), 'score_time': array([0., 0., 0., 0., 0.]), 'test_score': array([-0.50621342, -0.50944007, -0.49748711, -0.45673656, -0.4923172 ]), 'train_score': array([-0.4784887 , -0.47710178, -0.48093652, -0.49218163, -0.48165013])}\n",
      "{'fit_time': array([0.        , 0.        , 0.        , 0.        , 0.00999928]), 'score_time': array([0.        , 0.        , 0.01003146, 0.        , 0.        ]), 'test_score': array([-0.50621342, -0.50944007, -0.49748711, -0.45673656, -0.4923172 ]), 'train_score': array([-0.4784887 , -0.47710178, -0.48093652, -0.49218163, -0.48165013])}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "print(cross_validate(log,X_train,y_train.astype(\"int\"),scoring=\"accuracy\",cv=5,return_train_score='warn'))\n",
    "print(cross_validate(log,x_train,y.astype(\"int\"),scoring=\"accuracy\",cv=5,return_train_score='warn'))\n",
    "print(cross_validate(log,x_train2,y.astype(\"int\"),scoring=\"accuracy\",cv=5,return_train_score='warn'))\n",
    "\n",
    "print(cross_validate(log,X_train,y_train.astype(\"int\"),scoring=\"neg_log_loss\",cv=5,return_train_score='warn'))\n",
    "print(cross_validate(log,x_train,y.astype(\"int\"),scoring=\"neg_log_loss\",cv=5,return_train_score='warn'))\n",
    "print(cross_validate(log,x_train2,y.astype(\"int\"),scoring=\"neg_log_loss\",cv=5,return_train_score='warn'))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 274,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
       "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
       "          verbose=0, warm_start=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'penalty': ('l1', 'l2'), 'C': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 274,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#通过GridSearchCV进行超参优化\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "parameters={\"penalty\":(\"l1\",\"l2\"),\"C\":[1,2,3,4,5,6,7,8,9,10]}\n",
    "clf=GridSearchCV(log,parameters,cv=5,scoring=\"neg_log_loss\")\n",
    "clf.fit(X_train,y_train.astype(\"int\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-0.49737946451290754\n",
      "19\n",
      "{'C': 10, 'penalty': 'l2'}\n",
      "LogisticRegression(C=10, class_weight=None, dual=False, fit_intercept=True,\n",
      "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
      "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
      "          verbose=0, warm_start=False)\n"
     ]
    }
   ],
   "source": [
    "print(clf.best_score_)\n",
    "print(clf.best_index_)\n",
    "print(clf.best_params_)\n",
    "print(clf.best_estimator_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 276,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-0.48218892537813485\n",
      "19\n",
      "{'C': 10, 'penalty': 'l2'}\n",
      "LogisticRegression(C=10, class_weight=None, dual=False, fit_intercept=True,\n",
      "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
      "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
      "          verbose=0, warm_start=False)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "C:\\Users\\wangcc\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "parameters={\"penalty\":(\"l1\",\"l2\"),\"C\":[1,2,3,4,5,6,7,8,9,10]}\n",
    "clf=GridSearchCV(log,parameters,cv=5,scoring=\"neg_log_loss\")\n",
    "clf.fit(x_train,y.astype(\"int\"))\n",
    "\n",
    "print(clf.best_score_)\n",
    "print(clf.best_index_)\n",
    "print(clf.best_params_)\n",
    "print(clf.best_estimator_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
